LinuxQMISDK-Lite  SLQS04.00.27
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QmiService.h
Go to the documentation of this file.
1 
6 #ifndef __QMI_SERVICE_H__
7 #define __QMI_SERVICE_H__
8 
9 #include <stdbool.h>
10 #include <pthread.h>
11 #include "QmiTransaction.h"
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
27 typedef void (*QMI_INDICATION_CALLBACK)(
28  uint8_t* qmiPacket,
29  uint16_t qmiPacketSize,
30  void* pIndicationCallbackContext
31  );
32 
33 // Forward decls.
34 struct QmuxTransport;
35 
36 #define QMI_TRANSACTION_POOL_SIZE 10
88 typedef struct QmiService
89 {
90  struct QmiService* pNext;
91  uint8_t serviceType;
92  uint8_t clientId;
94  uint16_t transactionId;
95  pthread_mutex_t transactionIdLock;
97  pthread_mutex_t transactionPoolLock;
100  int deviceFd; // SUPPORT_QCQMI
101  struct QmuxTransport* pQcqmitransport; // SUPPORT_QCQMI
102 } QmiService;
103 
119  QmiService* pThis,
120  uint8_t serviceType,
121  uint8_t clientId,
122  struct QmuxTransport* pTransport,
123  QMI_INDICATION_CALLBACK pIndicationCallback,
124  void* pIndicationCallbackContext
125  );
126 
133 void QmiService_ShutDown(QmiService* pThis);
134 
142 
157  QmiService* pThis,
158  uint16_t transactionId,
159  uint8_t* qmiRequest,
160  uint16_t qmiRequestSize,
161  QMI_RESPONSE_CALLBACK pResponseCallback,
162  void* pResponseCallbackContext);
163 
170 void QmiService_CancelTransaction(QmiService* pThis, uint16_t transactionId);
171 
186  QmiService* pThis,
187  uint8_t serviceType,
188  uint8_t clientId,
189  uint8_t* qmiPacket,
190  uint16_t qmiPacketSize);
191 
192 
193 #ifdef __cplusplus
194 } /* extern "C" { */
195 #endif
196 
197 #endif //__QMI_SERVICE_H__
uint16_t transactionId
Definition: QmiService.h:94
void * pIndicationCallbackContext
Definition: QmiService.h:99
pthread_mutex_t transactionIdLock
Definition: QmiService.h:95
int deviceFd
Definition: QmiService.h:100
void(* QMI_RESPONSE_CALLBACK)(uint8_t *qmiPacket, uint16_t qmiPacketSize, void *pResponseCallbackContext)
Definition: QmiTransaction.h:27
uint8_t serviceType
Definition: QmiService.h:91
#define QMI_TRANSACTION_POOL_SIZE
Definition: QmiService.h:36
int QmiService_SendRequest(QmiService *pThis, uint16_t transactionId, uint8_t *qmiRequest, uint16_t qmiRequestSize, QMI_RESPONSE_CALLBACK pResponseCallback, void *pResponseCallbackContext)
void(* QMI_INDICATION_CALLBACK)(uint8_t *qmiPacket, uint16_t qmiPacketSize, void *pIndicationCallbackContext)
Definition: QmiService.h:27
pthread_mutex_t transactionPoolLock
Definition: QmiService.h:97
struct QmuxTransport * pTransport
Definition: QmiService.h:93
struct QmiService * pNext
Definition: QmiService.h:90
uint16_t QmiService_GetNextTransactionId(QmiService *pThis)
Definition: QmiTransaction.h:57
void QmiService_Initialize(QmiService *pThis, uint8_t serviceType, uint8_t clientId, struct QmuxTransport *pTransport, QMI_INDICATION_CALLBACK pIndicationCallback, void *pIndicationCallbackContext)
void QmiService_ShutDown(QmiService *pThis)
bool QmiService_HandleQmiPacket(QmiService *pThis, uint8_t serviceType, uint8_t clientId, uint8_t *qmiPacket, uint16_t qmiPacketSize)
uint8_t clientId
Definition: QmiService.h:92
void QmiService_CancelTransaction(QmiService *pThis, uint16_t transactionId)
QMI_INDICATION_CALLBACK pIndicationCallback
Definition: QmiService.h:98
struct QmiService QmiService
Definition: QmiService.h:88
Definition: QmuxTransport.h:82
struct QmuxTransport * pQcqmitransport
Definition: QmiService.h:101

Copyright (c) 2011-2015 Sierra Wireless, Inc. All rights reserved